1. Field of the Invention
This invention relates to programmable logic devices, and more specifically to secured configuration data for programmable logic devices.
2. Background Information
Programmable devices, e.g., Field Programmable Gate Arrays (FPGA), are used in many commercial digital devices. When a device such as this is turned on, the FPGA must be configured with a configuration bit stream. This bit stream is initially stored into an external memory, in most cases, before being loaded into the FPGA. This creates a security risk, since the design data (configuration bit stream) can be read from a data bus attached to the memory during the configuration. A person who knows the structure of the bit stream can interrupt the whole design inside the FPGA.
FIG. 1 shows the block diagram of an example system for loading a configuration bit stream into a programmable device. As shown in FIG. 1, a memory containing the bit stream 4 may reside on a card or other electronic device 2. The bit stream is read by programmable device 6, and used to configure the programmable array 8 of programmable device 6.
If embedded programmable device cores (e.g., programmable arrays) are used inside an application specific integrated circuit (ASIC), the problem of the configuration design data being read may be prevented if the configuration data fits in the internal memory of the application specific integrated circuit. Most often the internal memory space of the application specific integrated circuit is too limited to store all of the configuration data. As the use of dynamically reconfigurable logic increases, this problem becomes even worse. Dynamically reconfigurable designs may have many configuration bit streams, which just increases the amount of configuration data. Therefore, it is even more unlikely that all the configuration data will fit into the internal memory of an application specific integrated circuit. Dynamically reconfigurable logic allows hardware designs to be updated externally. Therefore, designs must somehow be protected in order to allow transmission of configuration data through unsecure systems. Without protection, competitors or hostile persons may access, interpret, and modify configuration bit streams that define valuable designs.